diff options
Diffstat (limited to 'app/[lng]/evcp/(evcp)/(procurement)')
4 files changed, 31 insertions, 21 deletions
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/general-contracts/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/general-contracts/page.tsx index a6d5057c..96f03d09 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/general-contracts/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/general-contracts/page.tsx @@ -12,6 +12,7 @@ import { GeneralContractsTable } from "@/lib/general-contracts/main/general-cont import { getValidFilters } from "@/lib/data-table"
import { type SearchParams } from "@/types/table"
import { InformationButton } from "@/components/information/information-button"
+import { useTranslation } from "@/i18n"
export const metadata = {
title: "일반계약 관리",
@@ -19,10 +20,13 @@ export const metadata = { }
interface IndexPageProps {
+ params: Promise<{ lng: string }>
searchParams: Promise<SearchParams>
}
export default async function GeneralContractsPage(props: IndexPageProps) {
+ const { lng } = await props.params
+ const { t } = await useTranslation(lng, 'menu')
// ✅ searchParams 파싱
const searchParams = await props.searchParams
const search = searchParamsCache.parse(searchParams)
@@ -52,12 +56,12 @@ export default async function GeneralContractsPage(props: IndexPageProps) { <div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- 일반계약 관리
+ {t('menu.procurement.general_contract')}
</h2>
<InformationButton pagePath="evcp/general-contracts" />
</div>
<p className="text-muted-foreground">
- 일반계약을 생성하고 관리할 수 있습니다. 계약 상세정보, 품목정보, 납품확인서 등을 관리할 수 있습니다.
+ {t('menu.procurement.general_contract_desc')}
</p>
</div>
</div>
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/itb-create/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/itb-create/page.tsx index 54040e7f..77dc54ee 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/itb-create/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/itb-create/page.tsx @@ -12,17 +12,16 @@ import Link from "next/link"; import { searchParamsPurchaseRequestCache } from "@/lib/itb/validations"; import { getAllPurchaseRequests, getPurchaseRequestStats } from "@/lib/itb/service"; import { PurchaseRequestsTable } from "@/lib/itb/table/purchase-requests-table"; +import { useTranslation } from "@/i18n" interface PurchaseRequestsPageProps { - params: { - lng: string; - }; + params: Promise<{ lng: string }>; searchParams: Promise<SearchParams>; } export default async function PurchaseRequestsPage(props: PurchaseRequestsPageProps) { - const resolvedParams = await props.params; - const lng = resolvedParams.lng; + const { lng } = await props.params + const { t } = await useTranslation(lng, 'menu') const searchParams = await props.searchParams; @@ -44,10 +43,10 @@ export default async function PurchaseRequestsPage(props: PurchaseRequestsPagePr <div className="flex items-center justify-between"> <div> <h2 className="text-2xl font-bold tracking-tight"> - 구매 요청 관리 + {t('menu.engineering_management.itb')} </h2> <p className="text-muted-foreground"> - 프로젝트별 자재 구매 요청을 생성하고 관리합니다. + {t('menu.engineering_management.itb_desc')} </p> </div> </div> @@ -161,4 +160,4 @@ async function PurchaseRequestStats({ export const metadata = { title: "Purchase Request Management", description: "Create and manage material purchase requests for projects", -};
\ No newline at end of file +}; diff --git a/app/[lng]/evcp/(evcp)/(procurement)/pcr/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/pcr/page.tsx index 7617bf58..22e0c124 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/pcr/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/pcr/page.tsx @@ -5,12 +5,17 @@ import { InformationButton } from "@/components/information/information-button" import { PcrTable } from "@/lib/pcr/table/pcr-table";
import { getPcrPoList } from "@/lib/pcr/service";
+import { useTranslation } from "@/i18n"
export const metadata = {
title: "PCR 관리",
description: "Purchase Change Request를 생성하고 관리할 수 있습니다.",
};
+interface IndexPageProps {
+ params: Promise<{ lng: string }>
+}
+
async function PcrTableWrapper() {
// 기본 데이터 조회 (EvcP용 - 모든 데이터 조회)
const tableData = await getPcrPoList({
@@ -21,7 +26,10 @@ async function PcrTableWrapper() { return <PcrTable tableData={tableData} isEvcpPage={true} currentVendorId={undefined} />;
}
-export default function PcrPage() {
+export default async function PcrPage({ params }: IndexPageProps) {
+ const { lng } = await params
+ const { t } = await useTranslation(lng, 'menu')
+
return (
<Shell className="gap-4">
{/* ═══════════════════════════════════════════════════════════════ */}
@@ -32,12 +40,12 @@ export default function PcrPage() { <div>
<div className="flex items-center gap-2">
<h2 className="text-2xl font-bold tracking-tight">
- PCR 관리
+ {t('menu.procurement.pcr')}
</h2>
<InformationButton pagePath="evcp/pcr" />
</div>
<p className="text-muted-foreground">
- Purchase Change Request를 생성하고 관리할 수 있습니다. PCR 승인 상태, 변경 구분, PO/계약 정보 등을 확인할 수 있습니다.
+ {t('menu.procurement.pcr_desc')}
</p>
</div>
</div>
diff --git a/app/[lng]/evcp/(evcp)/(procurement)/tbe-last/page.tsx b/app/[lng]/evcp/(evcp)/(procurement)/tbe-last/page.tsx index 61e7ce05..81d2af51 100644 --- a/app/[lng]/evcp/(evcp)/(procurement)/tbe-last/page.tsx +++ b/app/[lng]/evcp/(evcp)/(procurement)/tbe-last/page.tsx @@ -10,17 +10,16 @@ import { Shell } from "@/components/shell" import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton" import { Button } from "@/components/ui/button" import { Plus } from "lucide-react" +import { useTranslation } from "@/i18n" interface TbeLastPageProps { - params: { - lng: string - } + params: Promise<{ lng: string }> searchParams: Promise<SearchParams> } export default async function TbeLastPage(props: TbeLastPageProps) { - const resolvedParams = await props.params - const lng = resolvedParams.lng + const { lng } = await props.params + const { t } = await useTranslation(lng, 'menu') const searchParams = await props.searchParams @@ -41,10 +40,10 @@ export default async function TbeLastPage(props: TbeLastPageProps) { <div className="flex items-center justify-between"> <div> <h2 className="text-2xl font-bold tracking-tight"> - Technical Bid Evaluation (TBE) + {t('menu.engineering_management.tbe')} </h2> <p className="text-muted-foreground"> - RFQ 발송 후 기술 평가를 진행하고 문서를 검토합니다. + {t('menu.engineering_management.tbe_desc')} </p> </div> @@ -71,4 +70,4 @@ export default async function TbeLastPage(props: TbeLastPageProps) { export const metadata = { title: "TBE Management", description: "Technical Bid Evaluation for RFQ responses", -}
\ No newline at end of file +} |
